﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 设计模式
{
    class Program
    {
        static void Main(string[] args)
        {
            //设计模式  建筑行业
            //我要盖楼

            //招标 买地   找人设计我的大楼  施工队 开始按照我的设计图进行盖楼  装修  卖楼

            //设计模式就解决一些常见的问题

            //23种设计模式  单例设计模式 要获得唯一的对象
           // Person p = //new Person();
            Person p = Person.GetSingle();
        }
    }


    class Person
    { 
        //1、构造函数私有化
        private Person()
        { }


        /// <summary>
        /// 饿汉式
        /// </summary>
        private static Person _person=new Person();//作为全局唯一的变量

        public static Person GetSingle()
        {
            return _person;
        }
    }


    class Student
    {
        private Student()
        { }

        //懒汉式
        private static Student _student = null;

        public static Student GetSingle()
        {
            if (_student == null)
            {
                _student = new Student();
            }
            return _student;
        }
    }
}
